import { Queue } from "./interface";

/**
 * 状态更新函数
 * @param baseState 初始参数
 * @param queue 数组
 * @returns 更新后的状态
 */
export function getFinalState(baseState: number, queue: Queue) {
  let finalState = baseState;

  // TODO: 对队列做些什么...
  for (const update of queue) {
    if (typeof update === "function") {
      // 调用更新函数
      finalState = update(finalState);
    } else {
      // 替换下一个state
      finalState = update;
    }
  }

  return finalState;
}
